<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Title</title>
</head>
<body>

</body>
<script>
// 	- 公有属性和公有方法:设置给实例化对象原型的属性和方法被称作公有属性和公有方法
// {
// 	function Box(){
// 		this.userName = "zhangsan";// 实例属性（私有属性）
// 		this.fn = function(){
// 			console.log("fn");// 实例方法（私有方法）
// 		}
// 	}
// 	Box.prototype.age = 12;// 原型属性（公有属性）
// 	Box.prototype.run = function(){
//
// 	};// 原型方法（公有方法）
// }

// 	- 私有属性和私有方法:声明在构造函数中的变量或函数，被称作为私有属性和私有方法
//
// 	- 静态属性和方法:`js`中无需实例化就可以调用的方法叫做静态方法。
// {
// 	function Box(){
//
// 	}
// 	Box.age = 12;// 静态属性
// 	Box.fn = function(){
// 		console.log("fn")
// 	}
// 	console.log(Box.age);
// 	Box.fn();
// }

//  - 特权方法 :在构造函数内部通过this关键字定义的的方法，可以被实例化的对象调用。
{
	function Box(){
		var userName = "zhangsan";
		this.getUserName=function(){
			return userName;
		}
		this.setUserName = function(v){
			userName = v;
		}
	}
	const obj = new Box();
	obj.setUserName("lisi");
	console.log(obj.getUserName());
}
</script>
</html>